#ifndef FGE_COLOR_HPP
#define FGE_COLOR_HPP

namespace fge
{

class Color
{
public:
	Color();
	Color(float r, float g, float b, float a);

	Color& operator+=(const Color &c);
	Color& operator-=(const Color &c);

	Color& operator*=(const float f);
	Color& operator/=(const float f);

	float& R() { return r; }
	float R() const { return r; }
	float& G() { return g; }
	float G() const { return g; }
	float& B() { return b; }
	float B() const { return b; }
	float& A() { return a; }
	float A() const { return a; }

	const static Color White;
	const static Color Black;

protected:
	float r, g, b, a;
};

const Color operator+(const Color &lhs, const Color &rhs);
const Color operator-(const Color &lhs, const Color &rhs);

const Color operator*(const float lhs, const Color &rhs);
const Color operator*(const Color &lhs, const float rhs);

const Color operator/(const Color &lhs, const float rhs);

}

#endif//FGE_COLOR_HPP
